Method and apparatus for providing visual feedback during manipulation of text on a computer screen

ABSTRACT

A method and apparatus providing visual feedback to a computer user while dragging selected text is described. As its first step, the processing logic creates a text object from the selected text once the computer user has initiated a drag. Simultaneously, the selected text is visually de-emphasized. Secondly, the processing logic snaps the text object to the cursor so that the text object follows the cursor without obscuring text at the insertion point. Finally, when the computer user selects the final insertion point, the selected text is visually zoomed from the source location to the final insertion point.

This is a continuation of application Ser. No. 07/993,784 filed Dec. 21,1992 now abandoned.

FIELD OF THE INVENTION

The present invention pertains to a method and apparatus for providinguser feedback in a computer system. More particularly, the presentinvention pertains to a method and apparatus for providing visualfeedback to a computer user while manipulating text on a computerscreen.

BACKGROUND OF THE INVENTION

Many computer systems include graphical user interfaces. Graphical userinterfaces typically include a user interface window, more commonlyreferred to as a desktop window. While operating within the desktopwindow computer users are able to manipulate graphical objects, i.e.icons, using a cursor control device such as a mouse or trackball. Iconscan be moved simply by pointing, clicking and dragging. During theseoperations the computer user receives visual feedback that enhances thefeeling of physical control over the desktop window and the iconstherein. For example, selected icons are highlighted and, while themouse button is held down, the selected icon moves with the cursor.

Moving text within word processor files is not as easy. Highlighted textcannot be dragged about a document as if it were an icon. There is noway to "grab" the highlighted text. As a result, computer users do nothave a feeling of physical control during cut, copy and pasteoperations.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus providing visualfeedback to a computer user while dragging selected text. As its firststep, the processing logic of the present invention creates a textobject from the selected, highlighted text when the computer userinitiates a drag. Simultaneously, the selected text is visuallyde-emphasized. Secondly, after the cursor begins to move, the processinglogic snaps the text object to the cursor so that the text objectfollows the cursor without obscuring the insertion point. The computeruser is then free to move about text onscreen in search of an insertionpoint. Finally, when the computer user selects the insertion point, theselected text is visually zoomed from the source location to theinsertion point. As a result, the computer user has a feeling ofphysical control while moving selected text within a document.

Other objects, features, and advantages of the present invention will beapparent from the accompanying drawings and the detailed descriptionthat follows.

BRIEF DESCRIPTION OF THE FIGURES

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings in whichreferences indicate similar elements and in which:

FIG. 1 is an illustration of a computer system.

FIG. 2 is a flow diagram of a method of providing visual feedback whiledirectly manipulating text.

FIG. 3A illustrates the selection of text.

FIG. 3B illustrates the change of cursor caused by a mouse down event.

FIG. 3C illustrates the placement of the text object relative to thecursor during a drag.

FIG. 3D illustrates the tracking of the text object during a drag.

FIG. 3E illustrates the placement of the text object after a mouse upevent.

FIG. 4A illustrates a bounding rectangle at a source location.

FIG. 4B illustrates a bounding rectangle at a destination location.

FIG. 4C illustrates a zoom from a bounding rectangle at a sourcelocation to a bounding rectangle at a destination location.

FIG. 5 is a flow diagram of an idle loop for changing the shape of thecursor.

DETAILED DESCRIPTION

FIG. 1 illustrates a computer system 10 in which the present processinglogic of the invention operates. Computer system 10 is illustrated as anApple Macintosh™ computer system, however, those of ordinary skill inthe art will understand that alternative computer systems may be used.Computer system 10 includes a monitor 12 for visually displayinginformation to a computer user, a central processing unit (CPU), andinternal memory, enclosed by housing 14. Keyboard 16 allows a computeruser to provide input to the CPU. Computer system 10 also includes acursor control device, such as mouse 18, or a trackball, joystick, orspecial keys capable of signaling movement in a particular direction. Bymoving mouse 18 the computer user is able to control the movement of thetwo or three dimensional movement of a visible symbol, such as cursor20, on monitor 12. Computer system 10 also includes a signal generationdevice for signaling active and inactive control states. The signalgeneration device may be realized using a switch or button 19 on or nearthe cursor control device. The up position of button 19 signals theinactive control state while the down position of button 19 signals theactive control state.

Computer system 10 includes an operating system capable of tracking theposition of mouse 18 and cursor 20. The operating system also detectsthe state of the signal generation device and reports the position ofcursor 20 in each state of the signal generation device. These featuresof an operating system are well known in the art. Therefore, they willnot be described in detail here.

The processing logic of the present invention is stored within theinternal memory of computer system 10, or on other machine readablemedia, and executed by the CPU. The processing logic can be separatelycompiled or loaded entity or incorporated as part of a larger wordprocessing system. In either case, the processing logic of the presentinvention may be activated using techniques well known to those ofordinary skill in the art.

Briefly described, the processing logic of the present inventionprovides visual feedback to users of computer system 10 during directmanipulation of text within a word processing application. That visualfeedback includes de-emphasizing selected text at a source location,creating a text object resembling the selected text and "snapping" thetext object to the pointer such that the text object travels with thepointer. Once a destination location is chosen, the selected text isvisually "zoomed" from the source location to the destination location.

FIG. 2 illustrates in flow diagram form the operation of the processinglogic of the present invention. FIG. 3 illustrates the effect of theprocessing logic upon selected text 30 in relation to displayed text 32.

Referring now to FIG. 2, the processing logic performs two major tasks:determining whether visual feedback is required and providing thatvisual feedback. In steps 50-58 the processing logic determines whethervisual feedback is required. The computer user indicates the desire forvisual feedback by pressing mouse button 19 down while cursor 20 is overselected text 30, continuing to hold down mouse button 19 and movingcursor 20 from its position at the time of the mouse down event. Theprocessing logic generates visual feedback during the manipulation ofselected text 30 in steps 60-90. The processing logic generates visualfeedback for the computer user until after mouse button 19 is released;i.e., returns to the up position and the inactive state. Visual feedbackwhile mouse button 19 is down includes generation of a text object,snapping the text object to the cursor, flashing the insertion caret atlocation under cursor and moving the text object with the cursor. Oncethe computer user releases mouse button 19 it returns to its upposition, selected text 30 is visually zoomed from the source locationto the destination location.

The processing logic is not activated until after text has been selectedfrom the text displayed on monitor 12. In FIG. 3A, selected text 30,"Once upon a time", is indicated by reverse video, which distinguishesit from text 32 displayed on monitor 12.

After text 30 has been selected, the processing logic waits in step 50for a mouse down event. When the mouse down event occurs, the processinglogic is also informed of the cursor position at the time of the mousedown event. Let us refer to this cursor position as the "mouse downposition". Afterward, the processing logic advances to step 52.

In step 52 the processing logic determines whether the computer user mayrequire visual feedback to accompany the manipulation of selected text30. This determination is made by comparing the mouse down position tothe coordinates of selected text 30. The user does not require visualfeedback for text manipulation if the computer user pressed mouse button19 down while cursor 20 was not over selected text 30. In that case, theprocessing logic branches to step 54 to handle the mouse down event in aconventional and appropriate manner. On the other hand, visual feedbackmay be required if the mouse down position was over selected text 30.The processing logic advances to step 56 to determine if so.

In step 56 the processing logic waits to see if the computer userrequires visual feedback to accompany manipulation of selected text. Thecomputer user does not require visual feedback if a mouse up eventoccurs before cursor 20 is moved from the mouse down position.Accordingly, the processing logic branches to step 54 to handle themouse up as if a mouse down event occurred at the original mouse downlocation. However, in the absence of a mouse up event, the processinglogic branches to step 58.

In step 58 the processing logic determines the current position ofcursor 20. Let us refer to this position as the "current cursorposition". If the current cursor position is some arbitrary distanceaway from the mouse down position the computer user has indicated adesire to move, or pick-up, selected text 30. In one embodiment, thecurrent cursor position is chosen to be three pixels away from the mousedown position to indicate a desire to manipulate selected text 30. Thedistance chosen may vary according to needs of the computer user. Theprocessing logic responds to movement of cursor 20 while mouse button 19is still down by branching to step 60. On the other hand, if the cursorcurrent position is still very close to the mouse down position, thenthe processing logic continues to await indication of whether or notvisual feedback is desired by branching back up to step 56.

With step 60 the processing logic begins providing visual feedback tothe computer user by de-emphasizing selected text 30. Selected text 30can be de-emphasized in a number of ways that will be apparent to thoseskilled in the art. In one embodiment, de-emphasis of selected text 30is performed using a QuickDraw™ brand graphics processing routine, whichtransforms the white areas surrounding the text to light gray and blackletters of the text to medium gray. FIG. 3C illustrates de-emphasizedselected text 30a according to this scheme. De-emphasis of selected text30 achieved, the processing logic advances to step 62.

In step 62 the processing logic creates text object 34 from selectedtext 30. As used herein "text object" refers to a visual representationof selected text 30, which may or may not include all of selected text30. Text object 34 need only include sufficient text to remind thecomputer user selected text 30 without unnecessarily obscuring much ofthe text 32 displayed on monitor 12. Text object 34 may be created bygenerating a bit map of selected text 30 and limiting its size. Textobject 34 may also be represented by a dotted outline of selected text30, similar to what computer users see when they drag icons within thedesktop window. Such a representation of text object 34 requires lessCPU time but does not inform the computer user of selected text 30 whichis being moved.

Text object 34 may also be emphasized as compared to displayed text 32.In one embodiment, text object 34 is emphasized using reverse video.Other methods of emphasizing text object 34 will be obvious to thoseskilled in the art. Therefore, the manner of creating and emphasizingtext object 34 will not be described in detail herein. The processinglogic branches to step 64 after its creation of text object 34.

The processing logic displays text object 34 at the source locationduring step 64. As used herein, "source location" refers to the initiallocation of selected text 30. Stated another way, "source location"refers to the location that is the source of selected text 30.

Because it is initially displayed at the source location, text object 34obscures de-emphasized selected text 30 if they are both the same size.Once text object 34 is moved it no longer obscures selected text 30. Theprocessing logic also displays insertion caret 36 near cursor 20 in step64. As using herein "insertion caret" refers to any visualrepresentation that indicates to the computer user the precise locationin a body of text where selected text 30 may be inserted. According tocommon word processing conventions, insertion caret 36 is visuallyrepresented by a thin vertical line.

To provide further visual emphasis that the computer user is able tomanipulate selected text 30, cursor 20 may be displayed as an arrow.Processing logic for doing so will be described in detail herein below.When cursor 20 is displayed as an arrow, insertion caret 36 ispreferably displayed near tip 20a of cursor 20, as shown in FIGS. 3C and3E. Initial display of insertion caret 36 and text object 34 begun, theprocessing logic proceeds to step 66.

The processing logic begins the process of snapping text object 34 tocursor 20 in step 66. The processing logic does this by initializing aninterpolation factor, which is used to snap text object 34 to cursor 20in a discrete and finite number of steps. Text object 34 is graduallymoved to cursor 20 to prevent computer users from becoming disorientedby text object 34 appearing in an unfamiliar location. This done, theprocessing logic enters the snapping and tracking logic by branching tostep 68.

The loop of steps 68-90 snaps text object 34 to cursor 20 and, oncesnapped, ensures that text object follows the movement of cursor 20 onmonitor 12. The first step within the loop is determining whether theinterpolation factor has reached its maximum value of one. If it hasnot, text object 34 has not yet snapped to cursor 20. To continuesnapping, the processing logic branches to step 70. On the other hand,if text object 34 has snapped to cursor 20, as indicated by the maximumvalue of the interpolation factor, the processing logic advances to step72.

During step 70 the interpolation factor is incremented. The amount bywhich the interpolation factor is incremented depends upon the choice ofthe number of steps for text object 34 to reach cursor 20. For example,if the number of steps chosen for text object 34 to reach cursor 20 isfour, then the interpolation factor is incremented by 0.25 each passthrough step 70. The number of steps chosen will depend upon the visualeffect and response time desired. After incrementing the interpolationfactor, the processing logic branches to step 72.

The processing logic moves text object 34 in step 72 to a locationdetermined by the interpolation factor and the current distance betweenthe source location and cursor 20. Thus, if the interpolation factor hasnot yet reached its maximum value, text object 34 will be moved towardcursor 20 along an imaginary straight line between the source locationand cursor 20 to a locating determined by the distance multiplied by theinterpolation factor. Stated another way, during step 72 text object 34is moved to a location determined by a weighted average of the sourcelocation and the destination location using the interpolation factor.When the interpolation factor reaches its maximum value, text object 34snaps to cursor 20. Thereafter, text object 34 follows the movement ofcursor 20 providing a visual impression that text object 34 is attachedto cursor 20. This, in turn, gives the computer user a feeling ofphysical control.

In one embodiment, text object 34 is snapped to the lower left hand ofcursor 20, as shown in FIGS. 3C and 3D. This location prevents textobject 34 from obscuring insertion caret 36 and focuses the computeruser's attention on insertion caret 36 and cursor 20 while maintainingthe strong visual impression that text object 34 is attached to cursor20. Those skilled in the art will appreciate that other locations nearor on cursor 20 may also convey the same visual impression.

After moving text object in step 72, the processing logic advances tostep 74. There the processing logic moves insertion caret 36 if cursor20 has moved. Insertion caret 36 is moved to a location between the twocharacters nearest to cursor 20. This done the processing logic advancesto step 76.

During step 76 the processing logic compares the current location ofinsertion caret 36 to its previous location. If insertion caret 36 hasnot moved from its previous location, the processing logic advances tostep 78. There insertion caret 36 is "flashed", or blinked on and off,indicating an idle state. On the other hand, if insertion caret 36changed its location during step 74 then the processing logic advancesto step 80.

In step 80 the processing logic determines whether the computer user hasselected an insertion point, or destination location, for selected text30. (As used herein "destination location" refers to the position ofcursor 20 at the time of a mouse up event.) The processing logic makesthis determination by discovering whether a mouse up event has occurred.A mouse up event necessarily accompanies selection of a destinationlocation or insertion point. The location of cursor 20 at the time ofthe mouse up event determines the insertion point for selected text 30.The processing logic responds to a mouse up event by branching to step82. Conversely, the absence of a mouse up event indicates that thecomputer user has not yet selected the destination location. Theprocessing logic responds to this state of affairs by branching back tothe start of the tracking and snapping loop, step 68.

After the mouse up event, with step 82 the processing logic begins theprocess of indicating visually to the computer user the movement ofselected text 30 from the source location to the destination location.This involves three steps. First, the processing logic calculatesbounding rectangles for selected text 30 at both the source location andthe destination location. Second, the processing logic zooms from thefirst bounding rectangle at the source location to the second boundingrectangle at the destination location. Finally, selected text 30 isdisplayed at the destination location in the third and final step.

In step 82 the processing logic computes a bounding rectangle forselected text 30 at the source location. This step, and the second, areillustrated in FIG. 4 using selected text 31; i.e., "Jack and Jill".Bounding rectangle 100 is defined by two points of selected text 31: thepoint furthest to the top left and the point furthest to the bottomright. The dimensions of bounding rectangle 100 computed, the processinglogic proceeds to step 84. These points are chosen because the selectedtext may span vertically more than one line.

In step 84, offscreen the processing logic moves selected text 31 to thedestination location. As understood by those skilled in the art,computer 10 maintains in internal memory a copy of the text file thattext displayed monitor 12 is part of. This copy is said to be"offscreen". Thus, it will be understood that the activities of step 84do not alter the text displayed on monitor 12.

In moving selected text 31 to the destination location in step 84, theprocessing logic performs an intelligent paste, which is also commonlyreferred to as intelligent cut and paste. Intelligent cut and paste is aset of editing features that account for the need for spaces betweenwords. FIGS. 4A and 4B illustrate how intelligent cut and pasteperforms. In FIG. 4A, insertion caret 102 is the space immediatelyfollowing the word "the". Without intelligent cut and paste, afterinserting selected text 31 displayed text 33 would not include a spacebetween "Jack" and "the" unless selected text 32 includes a space before"Jack". Stated another way, without intelligent cut and paste, afterinserting selected text 31 the sixth line 104 of displayed text 33 wouldread as "assumed theJack". However, using intelligent cut and paste, thesixth line 104 includes a space between "the" and "Jack," regardless ofwhether selected text 31 includes a space before "Jack". Thus, usingintelligent cut and paste sixth line 104 reads as "assumed the Jack," asillustrated in FIG. 4B.

After moving selected text 31 to the destination location, theprocessing logic emphasizes selected text 31. As a result when theoffscreen copy of the file is finally displayed, the computer user'sattention will be called to selected text 31 at the destinationlocation. Selected text 31 may be emphasized visually in a great manyways, including displaying selected text 31 in reverse video.

Whether selected text 31 is also removed from the source location duringstep 78 depends upon whether the computer user has requested a cut andpaste or a copy and paste. If a cut and paste operation was selectedtext 31 is removed from the source location. Otherwise, selected text 31remains at the source location, but it will no longer be de-emphasized.

The processing logic proceeds to step 86 from step 84. Having movedselected text 31 to the destination location, the processing logic nowcomputes a bounding rectangle for selected text 31 at the destinationlocation. Like bounding rectangle 100, bounding rectangle 104 is definedby two points of selected text 31: the point of text furthest to the topleft and the text point furthest to the bottom right. Given insertionpoint 102, the dimensions of bounding rectangle 104 may vary from thoseof bounding rectangle 100. This is the case in FIG. 4B.

Preparations for zooming complete, the processing logic branches to step88 from step 86. In step 88, the processing logic zooms from selectedtext 31 at the source location to selected text 31 at the destinationlocation. Zooming is a well known visual effect that animates themovement of an object between two points on monitor 12. Methods foranimating zooms are well known and will not be described in detailherein. The dimensions of bounding rectangles 100 and 104 are providedto a zoom processor. Given these, the zoom starts with a boundingrectangle 100 displayed near the source location. Two or more rectanglesare displayed on monitor 12 at a time, each successive rectangle moreclosely approaching the dimensions and final location of boundingrectangle 104. FIG. 4C attempts to illustrate this idea. The dimensionsof intervening rectangle 106 differ slightly from those boundingrectangle 100, just starting to approach those of bounding rectangle104. Similarly, the dimensions of intervening rectangle 108 differ fromthose of intervening rectangle 106, approaching more closely thedimensions of bounding rectangle 104. The zooms ends with the display ofbounding rectangle 104 near the destination location.

The processing logic advances to step 90 after the zoom is complete.There the processing logic displays onscreen selected text 31 at thedestination location. Following as it does the zoom, the effect of step78 is that the zoom drops selected text 31 at the destination location.

The processing logic branches to step 92 from step 90 to awaitactivation again.

Additional visual feedback may be provided to the computer user toemphasize that selected text 30 may be dragged within a window, orbetween windows. Displaying cursor 20 as an arrow, rather than anI-beam, while cursor 20 is over selected text 30 emphasizes this fact.FIG. 5 illustrates in flow diagram form a method for doing so as abackground process.

The processing logic begins in step 110 by determining whether cursor 20is over selected text 30. If cursor 20 is not, the processing logicbranches to step 112. There cursor 20 is displayed as an I-beam. On theother hand, if cursor 20 is over selected text 30, the processing logicadvances to step 114. During this step the processing logic displayscursor 20 as an arrow, indicating that cursor 20 is over a draggableitem.

Thus, a method and apparatus for providing visual feedback to a computeruser while manipulating text has been described. The visual feedbackincludes creation of a text object from selected text, tracking theinsertion point as user moves mouse and zooming the selected text fromits source location to its destination location.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. It will, however,be evident that various modifications and changes may be made theretowithout departing from the broader spirit and scope of the invention asset forth in the appended claims. The specification and drawings are,accordingly, to be regarded in an illustrative rather than a restrictivesense.

What is claimed is:
 1. A computer implemented method of providing visualfeedback to a computer user during manipulation of selected text on adisplay device of a computer system, the computer system including acontrol device for interactively positioning a visible symbol and aninsertion caret on the display device, the computer also having a signalgeneration device for signaling an active state and an inactive state,the method comprising the computer implemented steps of:a) in responseto an active state of the signal generation device while the visiblesymbol is over the selected text at a source location on said displaydevice:1) creating and displaying a text object of the selected text,the text object including a visible portion of the selected text that isless than all of the selected text; 2) de-emphasizing the selected textat the source location; b) in a finite series of steps, moving the textobject on the display device along a line between the source locationand the visible symbol until the text object reaches the visible symbol;c) displaying the insertion caret near the visible symbol to indicate apoint of insertion of the selected text; d) moving the visible symbol inresponse to the control device and moving the text object in response tomovement of the visible symbol; e) in response to an inactive state ofthe signal generation device while the visible symbol is over adestination location:1) on the display device zooming from a firstbounding rectangle for the selected text at the source location to asecond bounding rectangle for the selected block of text at thedestination location such that the movement of the first boundingrectangle to the size and location of the second bounding rectangle atthe destination location is animated; and 2) displaying on screen theselected text at the destination location.
 2. The method of claim 1further comprising the computer implemented steps of:a) while thevisible symbol is located over the selected text displaying the visiblesymbol on the display device as an arrow; and b) while the visiblesymbol is not located over the selected block text displaying thevisible symbol on the display device as an I-beam.
 3. The method ofclaim 1, wherein the text object has a maximum size.
 4. The method ofclaim 1 wherein the selected text is removed from the source locationafter the selected text is displayed at the destination location.
 5. Themethod of claim 1 wherein the selected text remains displayed at thesource location after the selected block of text has been displayed atthe destination location.
 6. The method as set forth in claim 1, whereinin response to an active state of the signal generation device while thevisible symbol is over the selected text at a source location on saiddisplay device, said method further comprising the step ofde-emphasizing the selected text at the source location.
 7. A computerimplemented method of providing visual feedback to a computer user whilemanipulating selected text displayed on a display device of a computersystem, the computer system including a control device for interactivelypositioning a visible symbol and an insertion caret on the displaydevice, the control device having a button having an up position and adown position, the method comprising the computer implemented stepsof:a) in response to the button being in the down position while thevisible symbol is over a selected text at a source location:1) creatinga text object from the selected text, the text object including avisible portion of the selected text that is less than all of theselected text; 2) displaying on the display device the text object overthe selected text at the source location; b) initializing aninterpolation factor, said interpolation factor comprising amultiplicand utilized to generate incremental steps between a startingpoint and an ending point; c) incrementing the interpolation factor ifit has not reached a maximum value; d) computing a distance between thetext object and a first point on the display device associated with thelocation of the visible symbol; e) moving the text object along animaginary line between the source location and the first point to apoint on the display device determined by the distance multiplied by theinterpolation factor; f) with the button is in the down positionrepeating steps c) through e); g) if the button is in the up positionover a destination location:1) computing a first bounding rectangle forthe selected text at the source location; 2) computing a second boundingrectangle for the selected text at the destination location; and 3)zooming from the first bounding rectangle at the source location to thesecond bounding rectangle at the destination location such that themovement of the first bounding rectangle to the size and location of thesecond bounding rectangle at the destination location is animated. 8.The method of claim 7 further comprising the computer implemented stepsof:a) selecting the selected text at the source location from availabletext, displayed on the display device; and b) highlighting on thedisplay device the selected text.
 9. The method of claim 7 furthercomprising the computer implemented step of:a) offscreen inserting theselected text at the destination location after computing the firstbounding rectangle.
 10. The method of claim 9 further comprising thecomputer implemented step of:a) performing an intelligent paste when theselected text is inserted at the destination location.
 11. The method ofclaim 9 further comprising the step of:a) displaying on the displaydevice the selected text at the destination location after zooming fromthe first bounding rectangle at the source location to the secondbounding rectangle at the destination location.
 12. The method of claim11 wherein the selected block of text remains displayed at the sourcelocation after the selected block of text has been displayed at thedestination location.
 13. The method of claim 7 further comprising thecomputer implemented steps of:a) while the visible symbol is locatedover the selected text displaying the visible symbol on the displaydevice as an arrow; and b) while the visible symbol is not located overthe selected text displaying the visible symbol on the display device asan I-beam.
 14. The method of claim 7 wherein the text object has amaximum size.
 15. The method of claim 7 further comprising the computerimplemented step of:a) removing the selected text from the sourcelocation after the selected text is displayed at the destinationlocation.
 16. The method of claim 15 further comprising the step of:a)performing an intelligent cut at the source location when the selectedtext is removed from the source location.
 17. The method as set forth inclaim 7, wherein in response to the button being in the down positionwhile the visible symbol is over a selected text at a source location,said method further comprising the step of visually de-emphasizing onthe display device the selected text at the source location.
 18. Adevice for providing visual feedback to a computer user whilemanipulating selected text displayed on a display device of a computersystem, the computer system including a control device for interactivelypositioning a visible symbol and an insertion caret on the displaydevice, the control device having a button having an up position and adown position, the device comprising:a) a first means for creating atext object from the selected text, the text object including a visibleportion of the selected text that is less than all of the selected text,the first means responding to the button being in the down positionwhile the visible symbol is over the selected text at the sourcelocation; b) a second means for initializing an interpolation factor andincrementing the interpolation factor if the interpolation factor hasnot reached a maximum value, the second means responding to the buttonbeing in the down position, said interpolation factor comprising amultiplicand utilized to generate incremental steps between a startingpoint and an ending point; c) a third means for computing a distancebetween the text object and a first point on the display deviceassociated with the visible symbol, the third means responsive to thebutton being in the down position; d) a fourth means for moving the textobject along an imaginary line between the source location and the firstpoint to a point on the display device determined by the distancemultiplied by the interpolation factor, the fourth means responding tothe button being in the down position; and e) a zooming means forzooming from a first bounding rectangle for the selected block of textat the source location to a second bounding rectangle for the selectedblock of text at the destination location such that the movement of thefirst bounding rectangle to the size and location of the second boundingrectangle at the destination location is animated.
 19. The device as setforth in claim 18, further comprising a fifth means for visuallyde-emphasizing on the display device the selected text at the sourcelocation, the fifth means responding to the button being in the downposition.
 20. An apparatus providing visual feedback while manipulatinghighlighted text, the apparatus comprising:a) a computer systemincluding:1) a central processing unit; 2) a display device fordisplaying images, text and the highlighted text, the display devicebeing coupled to the central processing unit; 3) a control device forinteractively positioning a visible symbol and an insertion caret on thedisplay device, the control device having a button having an up positionand a down position, the control device being coupled to the centralprocessing unit; b) a first process coupled to the central processingunit, the first process creating a text object from the highlightedtext, the text object including a portion of the selected text that isless than all of the selected text, the first process responding to thebutton being in the down position while the visible symbol is over thehighlighted text at a source location; c) a second process coupled tothe central processing unit, the third process initializing aninterpolation factor and incrementing the interpolation factor if it hasnot reached a maximum value, the second process responding to the buttonbeing in the down position; d) a third process coupled to the centralprocessing unit, the fourth third process computing a distance betweenthe text object and a first point on the display device associated withthe location of the visual symbol, the third process responsive to thebutton being in the down position; e) a fourth process coupled to thecentral processing unit, the fifth process moving the text object alongan imaginary line between the source location and the first point topoint on the display device determined by the distance multiplied by theinterpolation factor, the fourth process responding to the button beingin the down position; and f) a zooming process coupled to the centralprocessing unit, the zooming process causing the zooming from a firstbounding rectangle for the selected block of text at the source locationto a second bounding rectangle for the selected block of text at thedestination location such that the movement of the first boundingrectangle to the size and location of the second bounding rectangle atthe destination location is animated.
 21. The apparatus as set forth inclaim 20, further comprising a fifth process coupled to the centralprocessing unit, the second process visually de-emphasizing on thedisplay device the highlighted text at the source location, the fifthprocess responding to the button being in the down position.